package com.zy.explore.vo;

import com.zy.explore.annotation.DeSensitiveField;
import com.zy.explore.enums.SensitiveTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * description 用户信息VO
 *
 * @author ZY
 * @date 2021年05月14日 21:25
 */
@ApiModel("UserInfoVO")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoVO {

    @ApiModelProperty("用户ID")
    private String id;

    @DeSensitiveField(type = SensitiveTypeEnum.CHINESE_NAME)
    @ApiModelProperty("姓名")
    private String name;

    @DeSensitiveField(type = SensitiveTypeEnum.ID_CARD)
    @ApiModelProperty("身份证号")
    private String idCard;

    @DeSensitiveField(type = SensitiveTypeEnum.FIXED_PHONE)
    @ApiModelProperty("座机号")
    private String fixPhone;

    @DeSensitiveField(type = SensitiveTypeEnum.MOBILE_PHONE)
    @ApiModelProperty("手机号")
    private String mobilePhone;

    /** 加密脱敏 */
    @DeSensitiveField(type = SensitiveTypeEnum.ENCRYPT)
    @ApiModelProperty("加密手机号")
    private String encryptPhone;

    @DeSensitiveField(type = SensitiveTypeEnum.ADDRESS)
    @ApiModelProperty("地址")
    private String address;

    @DeSensitiveField(type = SensitiveTypeEnum.EMAIL)
    @ApiModelProperty("邮箱")
    private String email;

    @DeSensitiveField(type = SensitiveTypeEnum.BANK_CARD)
    @ApiModelProperty("银行卡")
    private String bankCard;

    @DeSensitiveField(type = SensitiveTypeEnum.PASSWORD)
    @ApiModelProperty("密码")
    private String password;
}
